package com.txby.start.config;

import java.util.ArrayList;
import java.util.List;

import org.springframework.context.annotation.Configuration;
import org.springframework.http.MediaType;
import org.springframework.http.converter.ByteArrayHttpMessageConverter;
import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;

import com.txby.platformApi.component.interceptor.LoginInterceptor;

@Configuration
public class ServeInterceptorConfig extends WebMvcConfigurerAdapter {
	 
	    @Override
	    public void addInterceptors(InterceptorRegistry registry) {
	        // 多个拦截器组成一个拦截器链
	        // addPathPatterns 用于添加拦截规则
	        // excludePathPatterns 用户排除拦截
	        registry.addInterceptor(new LoginInterceptor()).addPathPatterns("/**");
	        super.addInterceptors(registry);
	    }
	    
	    @Override
	    public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {

	        ByteArrayHttpMessageConverter byteArrayHttpMessageConverter = new ByteArrayHttpMessageConverter(); 
	        byteArrayHttpMessageConverter.setSupportedMediaTypes(getSupportedMediaTypes());
	        converters.add(byteArrayHttpMessageConverter);
	    }

	    private List<MediaType> getSupportedMediaTypes() {
	        List<MediaType> list = new ArrayList<MediaType>();
	        //Add whatever media types you want to support here.
	        list.add(MediaType.MULTIPART_FORM_DATA);
	        return list;
	    }
		@Override
		public void addResourceHandlers(ResourceHandlerRegistry registry) {
			 registry.addResourceHandler("/static/**").addResourceLocations("/static/templates/**")
	            .addResourceLocations("classpath:/static").addResourceLocations("classpath:/static/templates");
			 registry.addResourceHandler("/static2/**")
	            .addResourceLocations("classpath:/static2");
//			registry.addResourceHandler("swagger-ui.html")
//	     	.addResourceLocations("classpath:/META-INF/resources/");
//			 registry.addResourceHandler("/webjars/**")
//			.addResourceLocations("classpath:/META-INF/resources/webjars/");
		}
	    
	    
}
